package com.hnhp.controller;

import cn.hutool.core.codec.Base64;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.hnhp.info.ImgInfo;
import com.hnhp.info.UploadInfo;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.stream.Collectors;


@RestController
@RequestMapping("/api/upload")
public class UploadController {
    private static String filePath= "D:/software/nginx-1.21.4/html/";
    private static List<String> imgExts= CollUtil.newArrayList("jpg","png","jpeg","gif");


    @PostMapping
    public String upload(@RequestBody UploadInfo uploadInfo){
        String name = uploadInfo.getName();
        String base64 = uploadInfo.getBase64();
        String[] base64s= StrUtil.splitToArray(base64,"base64,");
        // 转换为byte数组
        byte[] bytes= Base64.decode(base64s[1]);
        name= IdUtil.getSnowflakeNextIdStr()+"_"+name;
        String ext= FileUtil.getSuffix(name);
        String tempFolder = "images/";
        if(!imgExts.contains(ext)){
            tempFolder=ext+"/";
        }

        //写入到nginx中
        FileUtil.writeBytes(bytes,filePath+tempFolder+name);

//        FileUtil.writeBytes(bytes,"D:/software/nginx-1.21.4/html/images/"+name);

        return "http://www.hphs.com/"+tempFolder+name;

    }
    // 图片列表的获取

    @GetMapping
    public List<ImgInfo> getImg(){
        List<String> fileNames = FileUtil.listFileNames("D:/software/nginx-1.21.4/html/images/");
        // 转换为map集合
        List<ImgInfo> collect = fileNames.stream().map(
                item ->{
                    return new ImgInfo(item,"http://www.hphs.com/images/"+item);
                }).collect(Collectors.toList());
                return collect;

    }



}
